// 将axios全局对象绑定vue 原型中
// vue组件通过this.$http引用全局axios对象
// 需要配置axios.defaults.baseUrl
// 例如：
// Vue.prototype.axios.defaults.baseURL = 'http://192.168.0.102:8080/mock/hybrid'
// 在组件中可通过this.axios使用axios，不用再引入axios依赖

import Vue from 'vue'
import axios from 'axios'

/**
 * 设置拦截器，interceptors 响应处理，
 * 所有使用 axios 的请求响应，都会优先回调到拦截器中
 * 在正确的返回情况下，数据会优先进入第一个回调方法
 * 在请求错误的情况下，错误会进入第二个回调方法
 */
axios.interceptors.response.use((response) => {
  //  统一处理数据，使组件中的请求只获取到需要的业务数据，
  // 而不需要去关注返回的状态码等与业务无关的数据
  // console.log('响应拦截器');
  return response.data
}, (error) => {
  // 处理错误的响应
  return Promise.reject(error)
})

//  绑定到 vue 原型中，组件中 ： this.axios -> axios 。
Vue.prototype.axios = axios